package MAIN;
//笔试强训第1天

//选择题

/*子类如果重写父类的方法，访问修饰限定符的权限一定要大于等于父类的权限
* 访问修饰限定符权限大小：private < 默认权限 < protected < public */
/*在基本类型中，如果不明确指定类型，整数默认类型是int，小数默认类型是double*/
/*程序运行后是跑在jvm中的，jvm有5个区：加v啊虚拟机栈，本地方法栈，堆区，方法区，程序计数器*/
import java.util.*;

public class Main1 {
    //删除公共字符串
    //思路：首先不是把s2种包含s1字符的字符全都删除，
    // 而是把不包含的字符添加到新的字符串中，最后输出新的字符串
    public static void main1(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s1 = scan.nextLine();
        String s2 = scan.nextLine();
        HashMap<Character,Integer> map = new HashMap<>();
        //首先把s2中的字符串录入map中，之后再看s1中是否有map中的字符
        for (int i = 0; i < s2.length(); i++) {
            if (map.get(s2.charAt(i)) == null) {
                map.put(s2.charAt(i),1);
            }else {
                map.put(s2.charAt(i), map.get(s2.charAt(i))+1);
            }
        }
        String str = "";
        for (int i = 0; i < s1.length(); i++) {
            if (map.get(s1.charAt(i)) == null) {//就是不包含s1中的字符
                str += s1.charAt(i);
            }
        }
        System.out.println(str);
    }

    //组队竞赛（让两个队伍水平值中位数最大）
    //思路：对数组进行排序，之后用公式取数组中的每一组的次大的数
    //公式：arr[arr.length - 2*(i+1)]
    /*这个意思就是排序之后每次拿到的数据是从右边数第二个数据就是次大的
    * 每次分组数据的时候，都有一个次大的中位数，此时和就是最大的*/
    /*所以这个公式就是如何拿到次大的数据的下标，然后拿到这个数据*/
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextInt()) {
            int n = scan.nextInt();
            int[] arr = new int[3*n];
            long sum = 0;
            for (int i = 0; i < arr.length; i++) {
                arr[i] = scan.nextInt();
            }
            //代码走到这里，这个队伍就已经录入进来了
            //对数组进行排序
            Arrays.sort(arr);
            for (int i = 0; i < n; i++) {
                sum += arr[arr.length - 2*(i + 1)];
            }
            System.out.println(sum);
        }
    }
}























